package com.university.vo;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * Parttimetype entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "parttimetype", catalog = "university")

public class Parttimetype implements java.io.Serializable {

	// Fields

	private Integer partTimeTypeId;
	private Parttimetype parttimetype;
	private String partTimeTypeName;
	private Integer partTimeTypeLevel;
	private String partTimeTypeInfo;
	private Integer partTimeTypeSort;
	private Boolean partTimeTypeEnable;
	private Set<Parttime> parttimes = new HashSet<Parttime>(0);
	private Set<Parttimetype> parttimetypes = new HashSet<Parttimetype>(0);

	// Constructors

	/** default constructor */
	public Parttimetype() {
	}

	@Override
	public String toString() {
		return "Parttimetype [partTimeTypeId=" + partTimeTypeId + ", parttimetype=" + parttimetype
				+ ", partTimeTypeName=" + partTimeTypeName + ", partTimeTypeLevel=" + partTimeTypeLevel
				+ ", partTimeTypeInfo=" + partTimeTypeInfo + ", partTimeTypeSort=" + partTimeTypeSort
				+ ", partTimeTypeEnable=" + partTimeTypeEnable + ", parttimes=" + parttimes + ", parttimetypes="
				+ parttimetypes + "]";
	}

	/** full constructor */
	public Parttimetype(Parttimetype parttimetype, String partTimeTypeName, Integer partTimeTypeLevel,
			String partTimeTypeInfo, Integer partTimeTypeSort, Boolean partTimeTypeEnable, Set<Parttime> parttimes,
			Set<Parttimetype> parttimetypes) {
		this.parttimetype = parttimetype;
		this.partTimeTypeName = partTimeTypeName;
		this.partTimeTypeLevel = partTimeTypeLevel;
		this.partTimeTypeInfo = partTimeTypeInfo;
		this.partTimeTypeSort = partTimeTypeSort;
		this.partTimeTypeEnable = partTimeTypeEnable;
		this.parttimes = parttimes;
		this.parttimetypes = parttimetypes;
	}

	// Property accessors
	@Id
	@GeneratedValue

	@Column(name = "partTimeType_id", unique = true, nullable = false)

	public Integer getPartTimeTypeId() {
		return this.partTimeTypeId;
	}

	public void setPartTimeTypeId(Integer partTimeTypeId) {
		this.partTimeTypeId = partTimeTypeId;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "partTimeType_parentId")

	public Parttimetype getParttimetype() {
		return this.parttimetype;
	}

	public void setParttimetype(Parttimetype parttimetype) {
		this.parttimetype = parttimetype;
	}

	@Column(name = "partTimeType_name", length = 50)

	public String getPartTimeTypeName() {
		return this.partTimeTypeName;
	}

	public void setPartTimeTypeName(String partTimeTypeName) {
		this.partTimeTypeName = partTimeTypeName;
	}

	@Column(name = "partTimeType_level")

	public Integer getPartTimeTypeLevel() {
		return this.partTimeTypeLevel;
	}

	public void setPartTimeTypeLevel(Integer partTimeTypeLevel) {
		this.partTimeTypeLevel = partTimeTypeLevel;
	}

	@Column(name = "partTimeType_info", length = 200)

	public String getPartTimeTypeInfo() {
		return this.partTimeTypeInfo;
	}

	public void setPartTimeTypeInfo(String partTimeTypeInfo) {
		this.partTimeTypeInfo = partTimeTypeInfo;
	}

	@Column(name = "partTimeType_sort")

	public Integer getPartTimeTypeSort() {
		return this.partTimeTypeSort;
	}

	public void setPartTimeTypeSort(Integer partTimeTypeSort) {
		this.partTimeTypeSort = partTimeTypeSort;
	}

	@Column(name = "partTimeType_enable", insertable = false)

	public Boolean getPartTimeTypeEnable() {
		return this.partTimeTypeEnable;
	}

	public void setPartTimeTypeEnable(Boolean partTimeTypeEnable) {
		this.partTimeTypeEnable = partTimeTypeEnable;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "parttimetype")

	public Set<Parttime> getParttimes() {
		return this.parttimes;
	}

	public void setParttimes(Set<Parttime> parttimes) {
		this.parttimes = parttimes;
	}

	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "parttimetype")

	public Set<Parttimetype> getParttimetypes() {
		return this.parttimetypes;
	}

	public void setParttimetypes(Set<Parttimetype> parttimetypes) {
		this.parttimetypes = parttimetypes;
	}

}